#pragma once

#include "SceneManager.h"
#include "PushButton.h"

#include <vector>
#include <boost/signals2/signal.hpp>

// Forward declaration
class MainMenu;

/*!
 * \class MainMenuManager
 * \brief 
 */
class MainMenuManager : public game_engine::SceneManager
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    vector<boost::signals2::connection> _btnConnections;
    
///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    MainMenuManager(void);
    MainMenuManager(MainMenu *parent);
    virtual ~MainMenuManager(void);

    // Others
    void initialize(void) throw(...);
    const BOOL update(void) throw(...);
    void finalize(void) throw(...);

    // Slots
    void onPlay(BOOL clicked);
    void onOptions(BOOL clicked);
    void onExit(BOOL clicked);

private:
    void setMenuFocus(game_engine::gui::PushButton *btn);

};
